package br.com.aeso.bancoCurriculo.controller.contato;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;

import br.com.aeso.bancoCurriculo.controller.util.ComumController;
import br.com.aeso.bancoCurriculo.model.comum.excecoes.NegocioException;
import br.com.aeso.bancoCurriculo.model.comum.excecoes.ProjetoException;
import br.com.aeso.bancoCurriculo.model.contato.Contato;
import br.com.aeso.bancoCurriculo.model.contato.impl.ContatoImpl;
import br.com.aeso.bancoCurriculo.model.usuario.impl.UsuarioImpl;
import br.com.aeso.bancoCurriculo.model.util.Constantes;
import br.com.aeso.bancoCurriculo.model.util.Fachada;

@ManagedBean
@RequestScoped
public class ContatoController extends ComumController {
	private Fachada fachada;
	private ContatoImpl contato;
	private String email;
	private String mensagem;

	public ContatoController() throws ProjetoException {
		fachada = Fachada.getInstancia();
		contato = (ContatoImpl) fachada.criarContato();
	}

	public void setContato(Contato contato) {
		this.contato = (ContatoImpl) contato;
	}

	public Contato getContato() {
		return contato;
	}

	public void enviarMensagem() throws ProjetoException {
		
		try {
			fachada.enviarMensagem(email, mensagem);
		    this.redirecionarTela(Constantes.ARQUIVO_XHTML_INDEX);
		}
		catch (ProjetoException e) {
		    FacesContext context = FacesContext.getCurrentInstance();
		    FacesMessage message = new FacesMessage(e.getMessage());
		    context.addMessage("cadastro", message);
		    this.redirecionarTela(Constantes.ARQUIVO_XHTML_ENVIAR_MENSAGEM);
		}
	}
}
